Adaptive control system for an engine

ABSTRACT

An adaptive control system is provided for an internal combustion engine having at least two control inputs which affect an engine output. The system involves establishing a first base value for a first control input as a function of engine operating conditions and establishing a second base value for a second control input as a function of engine operating conditions. Corrections are applied in accordance with a predetermined control strategy to the first base value and the second base value to obtain a first corrected value for the first control input and a second corrected value for the second control input. A particular control input is periodically perturbed, and the engine output is monitored. The actual slope or differential of the engine output with respect to the particular control input is determined. The control strategy is predetermined to cause the actual slope to correspond to a desired value and to allow corrections to be applied to the first and second base values after corrections have become stabilized.

FIELD OF THE INVENTION

This invention relates to an adaptive control system for an internalcombustion engine and further relates to a method of operating such anengine.

BACKGROUND OF THE INVENTION

In view of the increasing stringency of emission control regulations invarious countries in recent years, many attempts have been made toimprove fuel supply systems of engines to reduce noxious exhaustemissions while maintaining good engine driveability.

In one approach to reduce noxious emissions, fuel and air are suppliedto the cylinders in stoichiometric proportions and the pollutants areremoved by using a catalyst. With this approach, it is desirable tocontrol the composition of the fuel mixture to the stoichiometricproportions for all engine operating conditions. If the mixturecomposition departs from these proportions, this may result in adeterioration of fuel economy or an increase in the pollutants whichhave to be removed by the catalyst.

In another approach to reducing noxious emissions, known as the "leanburn approach", a mixture containing excess air is supplied to thecylinders. Production of pollutants in the form of carbon monoxide andoxides of nitrogen is much less than with the stoichiometric approach.Also, an arrangement using this approach is less prone to deteriorationwith time than an arrangement using the stoichiometric approach and thisapproach results in an improvement in fuel consumption in comparisonwith the stoichiometric approach.

With the lean burn approach, as will now be explained, the mixturecomposition must be controlled carefully.

The formation of oxides of nitrogen is associated with high temperatureswithin the combustion chamber. The highest temperatures occur withmixtures whose composition is close to stoichiometric. Under theseconditions, there is little free oxygen to participate in the formationof oxides of nitrogen. Therefore, the rate of formation of oxides ofnitrogen is greatest with mixtures containing some excess air. Formationof oxides of nitrogen is reduced if the peak temperature duringcombustion is reduced by diluting the mixture either with excess air orwith exhaust gas. Thus, either the air/fuel ratio or the amount ofexhaust gas recirculated must be maintained above a predeterminedminimum boundary to keep the generation of oxides of nitrogen within anacceptable level.

In a combustion chamber in a spark ignition engine, immediately after aspark has occurred, no measurable combustion pressure rise occurs whilea flame kernel grows from the spark to a size at which the heat releaseproduces rapid flame propagation. This initial period of kernel growthis often termed "the delay period". The period of rapid flamepropagation shall hereinafter be referred to as "the combustion period".

During the combustion period, flame propagation occurs at a finitespeed. It has been found that maximum efficiency occurs when the peakpressures are generated approximately 5° to 15° after a piston haspassed the top dead center position. In order to achieve this, it isarranged that ignition occurs before the top dead center position.

As the mixture composition is made progressively leaner, the delayperiod increases and flame speed falls, thereby extending the combustionperiod.

In a spark ignition engine, the term "spark advance angle" is used todescribe the angle, before the top dead center position, at which aspark occurs.

To keep the peak pressure position near the optimum value, the sparkadvance must be advanced further as the mixture is made linear. Withvery lean mixtures or with very high levels of exhaust gasrecirculation, the delay and combustion periods are very long and thespark advance is very large. Consequently, the temperatures andpressures of the mixture at the moment of ignition are low and the rateof development of the flame kernel is also low. Small variations in themixture composition and turbulence level can lead to large variations inthe delay period which in turn leads to large variations in the totaltime to burn the mixture, as the combustion period can often be forcedsignificantly into the expansion stroke of the piston.

These large variations in total burning time lead to similar variationsin the cylinder pressure from cycle to cycle and so to unstable engineoperation known as engine roughness. Additionally, a completelynon-burning or partial burning cycle may occur where either the flamekernel does not develop, or the propagating flame is extinguished due toexpansion of the cylinder volume. This leads to significant levels ofemission of unburned hydrocarbons from the fuel.

Consequently, it is necessary to keep the air/fuel ratio or, where theexhaust gas is recirculated, the recirculation ratio of exhaust gasbelow a predetermined boundary beyond which roughness or emissions ofunburned hydrocarbons become unacceptable.

Modern systems for controlling spark advance and mixture composition inan internal combustion engine make use of look-up tables stored in readonly memories. These look up tables, which are also known as demandtables contain spark advance values and mixture composition values as afunction of two different engine operating parameters such as enginespeed and manifold pressure. These look up tables represent aconsiderable improvement on the mechanical devices which were usedpreviously. However, they do not provide a completely adequate answer toemission and efficiency problems as there are many variables which theycannot take into account. These variables include changes in theaccuracy of the operation of the equipment which controls the fuelmixture.

Various closed loop systems has been proposed to compensate for thesevariables.

In an article entitled "Electronic Spark Timing Control for MotorVehicles" by Paul H. Schweizer and Thomas W. Collins, published by TheSociety of Automotive Engineers as SAE paper 780655, and also in U.S.Pat. No. 4,026,251, there is described a system for optimizing sparkadvance. In this system, small perturbations are superimposed on thespark advance and the resulting changes in engine speed are used todetermine the differential or slope of engine speed with respect tospark advance angle. The spark advance is then adjusted until the slopeis zero.

Although this system results in optimum spark advance and, consequently,optimum engine output torque, for the prevailing fuel mixture, it doesnot compensate for errors in mixture composition.

Another closed loop system uses an exhaust gas oxygen sensor.Unfortunately, such sensors have not proved to be accurate in use. Also,where exhaust gas is recirculated, an oxygen sensor cannot compensatefor errors in the accuracy of the equipment responsible for therecirculation.

SUMMARY OF THE INVENTION

Accordingly, it is an object of this invention to provide a new orimproved adaptive control system for an internal combustion engine andalso a method of controlling such an engine which compensates for errorsin the equipment controlling mixture composition.

According to one embodiment of this invention, there is provided anadaptive control system for a power producing engine which has at leasttwo control inputs which affect an engine output. The system includesmeans for establishing a base value for a particular control input inaccordance with engine operating conditions, and a perturbation meansfor periodically perturbing the particular control input about the basevalue. A slope determination means determines an actual slope of engineoutput with respect to the particular control input, and a control meanscontrols a first control input and a second control input so as to causethe actual slope to correspond to a desired slope value. The system caninclude means for determining the desired slope value as a function ofengine operating conditions. In one aspect of the invention, the controlmeans can first modify the first control input within a given range tocause the actual slope to move closer to the desired slope value andthen modify the second control input until the actual slope equals thedesired slope value. The given range can be a predetermined percentagerelative to a starting base value of the first control input. In anotheraspect, the control means can simultaneously modify the first controlinput and the second control input in accordance with a predeterminedapportionment formula. The predetermined apportionment formula can besuch that the first control input is modified by a predeterminedproportion of the modification made to said second control input. Theparticular control input can be the same input as one of the firstcontrol input and the second control input or it can be a differentcontrol input from both the first control input and the second controlinput.

According to another embodiment of this invention, there is provided anadaptive control system for a power producing engine having at least twocontrol inputs which affect an engine output, said system comprising afirst means for establishing a first base value for a first controlinput as a function of engine operating conditions, second means forestablishing a second base value for a second control input as afunction of engine operating conditions, correction means for applyingcorrections in accordance with a predetermined control strategy to thefirst base value and the second base value to obtain a first correctedvalue for the first control input and a second corrected value for thesecond control input, perturbation means for periodically perturbing acontrol input, monitoring means for monitoring engine output, and slopedetection means responsive to the monitoring means, for determining theactual slope of the engine output with respect to the perturbed controlinput, the control strategy being predetermined to cause the actualslope to correspond to a desired value. The system can further comprisemeans for modifying the first means and the second means aftercorrections have become stabilized to supply modified first base valuesand modified second base values, respectively, corresponding toprevailing engine operating conditions such that the correction meanscauses the actual slope to correspond more quickly to the desired slope.

Preferably, the system includes an ignition timing control deviceresponsive to the first control input, a fuel mixture control deviceresponsive to the second control input, and the perturbed control inputis the first control input.

Applicants have found that ignition timing and mixture composition arerelated in the following way. For a particular engine, and for specifiedengine operating conditions, such as a specified value of engine speedand a specified value of manifold pressure, mixture composition isdefined by a particular value of ignition timing and a particular valueof the slope of engine output with respect to ignition timing. Betweenproduction engines, there are small but significant differences in theignition timing and slope combinations which define a particular mixturecomposition. However, mixture composition itself is subject torelatively large variations between production engines. Thus, ifignition timing only is varied to achieve a desired value of the slope,as outlined in the above SAE paper, there is a risk that a large errorin mixture composition will remain uncorrected. On the other hand, ifthe mixture composition alone is changed to achieve a desired value ofthe slope, this itself could cause an error in the mixture compositiondue to the differences in the combination of ignition timing and slopevalues occuring between production engines. By correcting both ignitiontiming and mixture composition in accordance with an appropriate controlstrategy, it is possible to maintain the errors in the mixturecomposition within acceptable limits.

In one example of the control strategy, the correction means appliescorrections up to a predetermined maximum magnitude to one of the firstand second base values and then applies corrections to the other of thebase values. In another example of the control strategy, the correctionmeans applies corrections simultaneously to both base values, thecorrections being related to each other by a predetermined formula.

In another embodiment of the invention where the engine is amulti-cylinder engine, the system includes means for establishing aplurality of combinations of cylinders of the engine and for selectingeach combination in turn, each combination including at least onecylinder, the means for applying corrections applies corrections on anindividual basis to at least one of the first and second base values foreach cylinder combination, the means for periodically perturbing theperturbed control input is arranged to perturb the perturbed controlinput for the selected cylinder combination, the means for determiningthe slope is arranged to determine the slope for the selected cylindercombination, and the control strategy is arranged to obtain a desiredvalue of the slope for each cylinder combination.

The fuel mixture control device may control the air/fuel ratio or may bea device for controlling exhaust gas recirculation. The system mayinclude means for detecting engine roughness, and means for overridingone of the corrected values in the event engine roughness exceeds apredetermined level.

According to another embodiment of the invention, there is provided amethod of controlling a power producing engine having at least twocontrol inputs which affect an engine output. The method includes (1)establishing a base value for a particular control input in accordancewith engine operating conditions; (2) periodically perturbing theparticular control input about the base value; (3) determining an actualslope of engine output with respect to the particular control input; and(4) controlling a first control input and a second control input so asto obtain a desired value of the slope.

According to yet another embodiment of this invention, there is provideda method of controlling a power producing engine having at least twocontrol inputs which affect an engine output, said method comprisingestablishing a first base value for a first control input as a functionof engine operating conditions, establishing a second base value for asecond control input as a function of engine operating conditions,applying corrections in accordance with a predetermined control strategyto the first base value and the second base value to obtain first andsecond corrected values, periodically perturbing a control input,monitoring the engine output, and determining the actual slope of theengine output with respect to the perturbed control input, the controlstrategy being predetermined so as to obtain a desired value of theslope and to permit corrections to be applied to both base values afterthe corrections have become established.

According to a further embodiment of this invention, there is providedan adaptive control system for an internal combustion engine having atleast two control inputs which affect an engine output, said systemcomprising means for establishing a base value for one of said controlinputs as a function of engine operating conditions, means forperiodically perturbing said one input about its base value, monitoringmeans for monitoring said engine output, means responsive to themonitoring means, for determining the actual slope of engine output withrespect to said one input, means for establishing a desired value of theslope, comparison means for determining the difference between theactual slope value and the desired slope, and storage means, responsiveto the comparison means, for storing information relating to saiddifference.

With this embodiment, the means for storing the information relating tothe error may be interrogated at periodic intervals, for example, duringa garage service. Where it is found that there are significant errors inthe slope, this will indicate that there is a fault in the equipmentwhich controls a mixture composition, and this fault can then beremedied.

The storage means can include a drift storage means for storing thedifference between the actual slope and the desired slope value as afunction of age of the engine, and can further include means, responsiveto the drift storage means, for providing a correction to said onecontrol input.

According to a still further embodiment of this invention, there isprovided a method of controlling an internal combustion engine having atleast two control inputs which affect an engine output, said methodcomprising establishing a base value for one of said control inputs as afunction of engine operating conditions, periodically perturbing saidone input about a base value, monitoring engine output, determining theactual slope of engine output with respect to said one input,establishing a desired value of the slope, determining the error betweenthe actual slope value and the desired slope value, and storinginformation relating to said error.

According to yet another embodiment of the invention, there is providedan adaptive control system for an internal combustion engine having atleast two control inputs which affect an engine output. The systemincludes a position transducer for generating crankshaft positionsignals, a load demand transducer for generating an output representingload demand on the engine, and a speed calculation device, responsive tothe position transducer, for providing an output representing enginespeed. A first memory means stores data representing a first controlinput as a function of engine speed and load demand, and responsive tothe output from the speed calculated device and the load demandtransducer, provides an uncorrected output for the first control inputat prevailing engine speed and load demand conditions. A second memorymeans stores data representing a second control input as a function ofengine speed and load demand, and responsive to the output from thespeed calculation device and the load demand transducer, provides anuncorrected output for the second control input at prevailing enginespeed and load demand conditions.

A perturbation means applies a perturbation signal to a particularcontrol input, and a slope detection means, responsive to the positiontransducer, determines an actual slope of the engine output relative tothe particular control input. A third memory means stores datarepresenting a desired slope or differential of the engine outputrelative to the particular control input as a function of engine speedand load demand, and responsive to the output from the speed calculationdevice and the load demand transducer, provides a desired slope for theengine output relative to the particular control input. An errordetection means, responsive to the output of the third memory means andthe slope detection means, compares, the desired slope and the actualslope and provides a slope error output having a magnitude and signrepresenting a compared relationship between the desired slope and theactual slope. A controller means, responsive to the error detectionmeans, apportions the slope error output into a first output and asecond output. A correction means sums the first output and theuncorrected output from the first memory means to obtain a correctedoutput for the first control input and sums the second output and theuncorrected output from the second memory means to obtain a correctedoutput for the second control input so that the magnitude of the slopeerror output is zero. The desired slope can be zero or a non-zero value.In one arrangement of this embodiment, the system can comprise anignition timing control means responsive to the first control input anda fuel mixture control means responsive to the second control input, andthe particular control input can be the first control input.

The controller means can apportion the slope error output such that oneof the first output and the second output has a value less than or equalto a predetermined maximum magnitude, with the correction means (1)first summing the one of the first output and the second output with thecorresponding one of the uncorrected output from the first memory meansand the second memory means to provide a corrected value for thecorresponding one of the first control input and the second controlinput and (2) thereafter summing the other of the first output and thesecond output with the corresponding one of the uncorrected output fromthe first memory means and the second memory means to provide acorrected value for the corresponding one of the first control input andthe second control input.

The controller means can alternatively apportion the slope error outputsuch that the first output and the second output are related to eachother by a predetermined formula, with the correction meanssimultaneously (1) summing the first output and the uncorrected outputfrom the first memory means to obtain a corrected output for the firstcontrol input and (2) summing the second output and the uncorrectedoutput from the second memory means to obtain a corrected output for thesecond control input.

In another arrangement of this last embodiment, the engine can be amulti-cylinder engine, and the control system can further comprisingmeans for establishing a plurality of combinations of cylinders of theengine, with each combination including at least one cylinder, and meansfor selecting each combination in turn. The correction means sumsindividually for each cylinder combination the first output and theuncorrected output from the first memory means to obtain a correctedoutput for the first control input and the second output and theuncorrected output from the second memory means to obtain a correctedoutput for the second control input. The perturbation means supplies theperturbation signal to the particular control input for each cylindercombination when it is selected, and the slope detection meansdetermines the actual slope of the engine output relative to theparticular control input for each cylinder combination when selected.

According to another arrangement of this last embodiment, the secondcontrol input can be a fuel control input, and the control system canfurther comprise an averaging circuit and a common fuel mixture controlmeans for each cylinder. The correction means provides to the averagingcircuit a sum of a second output and the uncorrected output from thesecond memory means for each cylinder combination when selected, and theaveraging circuit provides an average output to the common fuel mixturecontrol device.

According to another arrangement of this last embodiment, the secondcontrol input can be a fuel control input, and the control system canfurther comprise a common fuel mixture control means for each cylinder.A selection means selects a particular corrected output for the secondcontrol input provided by the correction means for each cylindercombination when selected by the cylinder selection means whichconstitutes one of a leanest and a richest fuel demand output andprovides the particular corrected output to the common fuel mixturecontrol means.

BRIEF DESCRIPTION OF THE DRAWINGS

The above objects, advantages and features of the invention will be morefully apparent from the following description when considered inconjunction with the attached drawings, of which:

FIG. 1 is a diagram of the functional components of an adaptive controlsystem according to one embodiment of this invention;

FIG. 2 is a graph in which the spark advance angle required to giveparticular levels of torque is plotted against air/fuel ratio;

FIG. 3A is a graph showing the variation in optimum spark advance anglebetween production engines;

FIG. 3B shows how spark advance and air/fuel ratio affect emissions ofnitrogen oxides;

FIG. 3C illustrates two control strategies used in the control system ofFIG. 1;

FIG. 4 illustrates the delay and combustion periods in the chamber of aspark ignition engine;

FIG. 5 is a block diagram of a microcomputer system for implementing thefunctional components of FIG. 1;

FIG. 6 is a layout diagram of the computer program for the microcomputersystem of FIG. 5;

FIGS. 7 and 8 are flow charts of the program; and

FIGS. 9 to 15 are diagrams of the functional components of six furtheradaptive control systems embodying this invention.

DETAILED DESCRIPTION OF THE INVENTION

At the outset, it is noted that U.S. Ser. No. 888,067 filed July 22,1986 and U.S. Ser. No. 016,790 filed Feb. 20, 1987 are relatedapplications, of which are incorporated herein by reference.

FIG. 2 shows how the performance of a spark ignition engine can becharacterized to provide information to enable feed-back control ofignition timing in the form of spark advance angle or mixturecomposition in the form of air/fuel ratio. FIG. 2 shows graphs in whichthe spark advance angles required to give particular levels of torqueare plotted against air/fuel ratio.

These curves are obtained by running an engine on a test bench at aspecific speed and air supply rate and measuring the torque obtained fordifferent levels of spark advance angle and air/fuel ratio. The engineis run with the air flow and spark advance angle set to specific values.The fuel setting of the engine and the braking load on the engine areadjusted until a specific fuel flow and engine speed are obtained. Thetorque is then noted.

Points at which one particular level of torque is obtained are joined toprovide the isotorque curve d. Similarly, isotorque curves c, b and acan be drawn for further successively higher levels of torque.

At any point in FIG. 2, there is a slope vector which points in thedirection which produces a maximum increase in torque. Everywhere alongan isotorque curve the slope vector is at right angles to the curve,since travel along the isotorque curve produces no change in torque.Hence, the points at which the isotorque curves are parallel to thespark advance axis are points at which there is no component of theslope vector in the spark advance direction. The partial differential oftorque with respect to spark advance angle is therefore zero at thesepoints and these points have been joined by line e on FIG. 2. The sameprocedure is repeated for each combination of values of air flow rateand speed. It has been found by the Applicants that the family of linese thus derived is characteristic of the engine being tested.

Thus, for a specific engine speed and a specific air flow rate, line erepresents a function relating spark advance angle to air/fuel ratio.Thus, using line e, each value or air/fuel ratio is defined by aspecific spark advance angle.

At each point not on line e, the partial differential or slope of enginetorque with respect to spark advance angle will have a non-zero value.Using the points away from line e, a specific air/fuel ratio can bedefined by a specific spark advance value together with the associatedvalue of the slope of engine torque with respect to ignition timing.

At lean air/fuel ratios, combustion in a spark ignition engine becomesexcessively slow with large variations in burning time between firingcycles. This is known as engine roughness. Regions of engine roughnessare shown in FIG. 2 by the hatched lines marked by arrow R.

Although not shown, there are also regions of air/fuel ratio and sparkadvance angle at which knock can occur and which should be avoided. Inregions where knock can occur, the slope is usually negative.

At points anywhere in FIG. 2 above and to the left of line e, the slopeof engine torque with respect to spark advance angle is negative. Belowand to the right of line e, the slope is positive. The area below and tothe right of curve e in FIG. 2 represents fuel mixtures where thecombustion period occurs too late in the cycle to make the maximumpossible contribution to the work output of the engine. The area aboveand to the left of curve e in FIG. 2 represents fuel mixtures where thecombustion period occurs too early in the cycle to make the maximumcontribution. As noted above, this area also includes regions whereknock might be expected.

While the engine is being tested to produce the curves shown in FIG. 2,the maximum of pollutants, especially nitrogen oxides, are alsomeasured.

Using the results of these tests, for each engine speed and air flowrate, an optimum combination of spark advance angle and air/fuel ratiomay be selected. The air/fuel ratio is selected so that the mixture islean enough to prevent generation of excessive amounts of nitrogenoxides but sufficiently rich to avoid the region of engine roughness.Normally, the spark advance angle is a point on curve e since suchangles correspond to maximum torque output. However, under certainconditions, a point away from curve e will be chosen. For example,during idling, it may be desired to retard the spark advance angle so asto reduce the emission of unburned hydrocarbons. At each of theseselected combinations of spark advance angle and air/fuel ratio, theslope of engine output with respect to spark advance angle is noted.

Similar curves to those shown in FIG. 2 can also be obtained relatingexhaust gas recirculation to spark advance angle at constant fuel/airratio. At high levels of exhaust gas recirculation, engine roughness canalso occur due to excessively slow combustion, and such roughness couldbe monitored and shown on the curves. Such curves could be used to showoptimum combinations of exhaust gas recirculation and spark advanceangle. Although FIG. 2 will now be discussed in relation to controllingspark advance angle and air/fuel ratio, it is to be appreciated that asimilar discussion could be made in relation to controlling sparkadvance angle and exhaust gas recirculation.

FIG. 2 and similar graphs for different engine speeds and air flow ratedefine the combination characteristics of a spark ignition engine. Fromconsidering FIG. 2, two approaches to engine control can be identified.

In the first approach, the spark advance angle is controlled to givezero slope and whatever fuel mixture is supplied to the engine isaccepted. This approach gives the best torque for that fuel mixture. Byway of refinement, the spark advance angle can be controlled to give anon-zero slope value, preferably retarding the spark advance angle fromthe optimum to reduce emissions of nitrogen oxides and hydrocarbons andthe risk of knock occurring. This approach is described in previouslymentioned U.S. Pat. No. 4,026,251, incorporated herein by reference.

In the second approach, the spark advance angle is fixed and theair/fuel ratio is controlled so as to achieve zero slope or, by way ofrefinement, a non-zero slope value.

The effect of these two approaches on compensating errors in fuelingwill be discussed shortly. In the meantime, differences in thecombustion process between production engines and also the effect ofspark advance angle and air/fuel ratio on emissions of nitrogen oxideswill be discussed.

Referring to FIG. 4, the combustion process can be thought of asconsisting of two periods. Immediately after the spark, there is a delayperiod (DP) where no measurable heat release takes place but a flamekernel grows to a size capable of rapid propagation. The subsequentcombustion period (CP) is that of visible flame propagation across thecombustion chamber. In order to obtain maximum torque output, there isan optimum point for the middle of the combustion period. In a typicalengine, a spark may occur at 35° before top dead center (TDC), the delayperiod may last for 20° of crankshaft rotation, the combustion periodmay last for 60° of crankshaft rotation, and the optimum point for themiddle of the combustion period may be 15° after top dead center. InFIG. 4, the spark, delay period, combustion period, top dead center, andthe optimum point are indicated respectively by arrows A to E.

Both the delay period and the combustion period are affected bydifferences between production engines and also changes which occurduring the life of an engine. Of these two periods, the delay period ismore strongly affected.

Differences between production engines include differences incompression ratio and value timing which are permitted by productiontolerances. Further changes may occur in the compression ratio and valvetiming during the engine life due to engine wear and the build-up ofcombustion chamber deposits. In addition to compression ratio and valvetiming effects, ignition quality will also affect the delay period andthe combustion period. Ignition quality may change due to variations inspark plug gap size, condition or orientation, or the ignition energyproduced by the coil and its associated drive circuit. The conduction ofthe high tension leads may also affect the energy delivered to the sparkplug and ignition quality can also be affected by variation in theexhaust gas recirculation level, or the use of spark-aiding gasolineadditives.

These changes in the sum of the delay period and the combustion periodresult in movement of the line e as shown in FIG. 3A. An engine in whichthe sum of the delay and combustion periods is shorter than in a normalengine may be called a "fast burn" engine and an engine in which the sumof these periods is longer than in a normal engine may be termed a "slowburn" engine. In FIG. 3A, curves for fast and slow burn engines areindicated respectively by F and S. As may be clearly seen in FIG. 3A,for a particular air/fuel ratio, there is a difference indicated byarrows A between the optimum spark advance angles. If the air/fuel ratiois controlled in the two engines to achieve zero slope at the same sparkadvance angle, this will result in a difference in the air/fuel ratio asindicated by arrow B.

The variation of emissions of nitrogen oxide is shown for four distinctspark advance angles in FIG. 3B. In this figure, the ordinate representsemissions of nitrogen oxides, the abscissa represents the air/fuelratio, and the direction of increasing spark advance angle is indicatedby arrow A. As may be seen, the maximum emissions occur at an air/fuelratio of about 16:1 and the emissions increase with increasing sparkadvance angle. In a fast burn engine, the early combustion will causethe emissions of nitrogen oxides to be greater than the design target,and in a slow burn engine the emissions will be less than the designtarget.

The effect of the first approach mentioned above will now be consideredin relation to correcting errors in the air/fuel ratio. As will berecalled, in the first approach, the spark advance angle is controlledso as to achieve a desired value of the slope of engine output withrespect to spark advance angle and, for simplicity, the case will beconsidered where the spark advance angle is varied to achieve zeroslope.

This first approach may be considered initially in relation to a normalburn engine. Referring to FIG. 2, it may be desired to operate an engineat point Y but, owing to an error in the fueling, the engine isoperating at point X. With this first approach, the spark advance anglewill be varied until the engine is operating at point Z on line e. Thus,although the engine torque is maximized for the actual air/fuel ratio,the error in the air/fuel ratio is not corrected. Consequently, thegeneration of nitrogen oxides will be greater than the design target andthe error in the air/fuel ratio is likely to lead to a deterioration infuel economy. Also, the output torque will differ from the design targetand so the engine will not operate in the same manner that was intended.

Errors in the air/fuel ratio in the lean direction may lead to engineroughness. The first approach may now be considered in relation to anengine in which the sum of the delay and combustion periods is abnormal.

With a first burn or a slow burn engine, errors in air/fuel ratio willstill not be corrected. However, with a fast burn engine, the sparkadvance angle will be decreased thereby reducing the emissions ofnitrogen oxides. This reduction in emissions of nitrogen oxides willoccur both with engines operating on the lean side and the rich side ofair/fuel ratio which produces maximum emissions. On the lean side, thespark advance angle may move, for example, from point O to point W inFIG. 3b. This will provide compensation for the increase which is causedby the engine being a fast burn engine. If the engine is a slow burnengine, the spark advance angle will be increased thereby increasing theemissions of nitrogen oxides. This increase in emissions of nitrogenoxides will occur both with the engine operating on the lean side andthe rich side of the air/fuel ratio which produces maximum emissions. Onthe lean side, the spark advance angle may vary, for example, from pointO to point Y. This will tend to remove the reduction in emissions sincethe engine is a slow burn engine. Therefore, controlling spark advancewill correct the variation of nitrogen oxides emissions which is causedby engine differences.

The second approach will now be considered in which the air/fuel ratiois controlled so as to achieve a target slope. For simplicity, the casewill be considered where the air/fuel ratio is controlled so as toachieve zero slope.

Referring again to FIG. 2, with a normal burn engine, it may be desiredto operate at point Y but, owing to an error in the fueling, the engineis operating at point X. With this approach, the air/fuel ratio will becontrolled until the engine is operating at point Y, and thus the errorin the fueling will be fully corrected.

Considering now FIG. 3A, an engine may be designed so as to operatealong a curve which is positioned mid-way between the curves S and F.However, with a slow burn engine, the air/fuel ratio will be controlledso that the engine operates along curve S and, with a fast burn engine,it will be controlled so that the engine operates along curve F.Consequently, for both engines, the air/fuel ratio will departsignificantly from the design curve. This may cause the fuel economy todiffer from the design target and differences between the actual torqueand the design torque will mean that the engine will not operate in themanner in which it was designed.

The effect of the second approach on the emissions of nitrogen oxideswill now be considered. Initially, the case will be considered where theengine is operating on the lean side of the air/fuel ratio whichproduces maximum emissions of nitrogen oxides. With a fast burn engine,the air/fuel ratio will be increased thereby reducing the emissions ofnitrogen oxides. For example, the air/fuel ratio may move from point Oto point V. This will compensate for the increase in emissions caused bythe engine being a fast burn engine. If the engine is a slow burnengine, the air/fuel ratio will be decreased thereby increasing theemissions of nitrogen oxides. For example, the air/fuel ratio might movefrom point O to point X. This will remove the reduction in emissions ofnitrogen oxides caused by the engine being a slow burn engine.

The case will now be considered where the engine is operating on therich side of the air/fuel ratio which causes maximum emissions ofnitrogen oxides. With a first burn engine, the air/fuel ratio will againbe increased. This increase in the air/fuel ratio will increase theemissions of nitrogen oxides and this increase will be in addition tothe increase caused by the engine being a fast burn engine. Thus, therewill be a severe deterioration in the emissions. In the case of a slowburn engine, the emissions will reduce and this reduction will be inaddition to the reduction caused by the engine being a slow burn engine.

In passing, it is of interest to note the two worst case combinationswhich can occur in an engine which operates on the lean side of theair/fuel ratio which gives maximum emissions of nitrogen oxides and inwhich neither spark advance angle nor air/fuel ratio are controlled inaccordance with the slope. In such an engine, the combination of a richfueling error and a fast burn engine can cause high nitrogen oxideemissions, and the combination of a lean fueling error and a slow burnengine can cause high engine roughness.

Thus, neither of the two approaches set out above provides an entirelysatisfactory solution to correcting errors in the air/fuel ratio.Applicants have found that a much more satisfactory solution can beachieved by controlling both the spark advance angle and the air/fuelratio in accordance with a particular control strategy so as to achievea particular slope. More specifically, Applicants have proposed twomethods for doing this and these will now be discussed.

In the first method, characteristics of the type shown in FIG. 2 aremade for a series of production engines which collectively exhibit therange of tolerances found in such engines. Specifically, for a givenair/fuel ratio, air/flow rate and engine speed, the range of sparkadvance values which achieve a given slope (usually zero) is determined.For current manufacturing techniques, the applicants had found that thisrange extends by 3° of spark advance angle on each side of the averagevalue. With improved production techniques, this range may becomesmaller.

In this first method, when there is an error in the slope, the sparkadvance angle is controlled first within this range or window so as tocause the actual slope to approach the target slope. When the sparkadvance angle reaches one of the limits of this window, the air/fuelratio is controlled until the actual and target slope angles are equal.

For present production engines, applications have found that movementalong a curve e as shown in FIG. 2 by an amount corresponding to 3° ofspark advance angle corresponds approximately to a change in theair/fuel ratio of one unit. Thus, if the spark advance angle isconstrained to move by up to 3° from its middle value, for a normal burnengine, the air/fuel ratio may be in error by up to one unit but theignition timing will be optimized for that fueling value. This error isconsidered acceptable and all the worst case conditions discussed abovewill be avoided, as only lean errors will occur on a fast burn engineand only rich errors will occur on a slow burn engine.

In a second method for the control strategy, the slope error isapportioned simultaneously to both the spark advance angle and theair/fuel ratio using a relatively low value of control gain. It isappropriate to divide the slope error between the spark advance angleand the air/fuel ratio so that the overall control is in a directionperpendicular to the slope contour. With zero slope, this would resultin the controlled direction being perpendicular to line e.

From slope characteristics, the applicants have found that a suitableformula for apportioning of the slope is to move the spark advance anglein the ratio of 3° for each unit of movement of the air/fuel ratio. Asis evident from inspecting FIG. 2, this ratio is not constant and willdepend upon the target air/fuel ratio. To maintain an overall directionof movement perpendicular to the slope contour, the amount of control ofthe spark advance angle will be greater with rich fueling than withleaner fueling. It can be appreciated that other ratios for apportioningthe slope error may be chosen so as to follow any desired controltrajectories on the spark advance and air/fuel ratio axes shown on FIG.3A.

FIG. 3c illustrates the advantages of the two methods of a combinedcontrol strategy on fast and slow burn engines. In FIG. 3c curves E1 andE2 correspond respectively to curve e of FIG. 2 for slow and fast burnengines. With a control system which varies only the air/fuel ratio andin which point O represents the design target, points A and B representrespectively the air/fuel ratios which would be set for the slow burnand fast burn engines. With combined spark advance and air/fuel ratiocontrol according to the first method set out above, for a slow burnengine the spark advance angle will be controlled from O to C and theair/fuel ratio will then be controlled from C to E. For a first burnengine, the control trajectory will move from O to D and from D to F.Using the second method set out above, for a slow burn engine, thecontrol trajectory will move from point O to G and, for a fast burnengine, the control trajectory will move from O to H.

With both of these methods, the emissions of nitrogen oxides will beclose to the design target. In addition, the fuel consumption and torquewill be much nearer to the design target than is achieved when only theair/fuel ratio is controlled.

After the corrections have become established, both these methods forthe control strategy will permit correction to be applied to both thespark advance angle and the air/fuel ratio.

In the discussion of FIGS. 2 to 4 above, spark advance angle is used tocontrol the point at which combustion occurs and thereby to controlignition timing. This is appropriate in a spark ignition engine. In adiesel engine, injector timing is used to control the start ofcombustion and thereby to control ignition timing.

The discussion of FIGS. 2 to 4 above has been based mainly oncontrolling the mixture composition by controlling the air/fuel ratio.As mentioned briefly, fuel mixture can also be controlled by controllingrecirculation of exhaust gas and many of the comments above which havebeen made in relation to air/fuel ratio could equally be made inrelation to exhaust gas recirculation ratio.

In the discussion of FIG. 2, engine torque is used as a parameter todefine engine output. Engine output can also be defined by engine speedor engine power and, in the various embodiments of the present inventionwhich will be discussed below, engine speed is used.

In the discussion of FIGS. 2 to 4 above, the spark advance angle hasbeen discussed as a function of air/fuel ratio at constant air flow. Asexplained above, for each engine speed and air flow, using theappropriate curve e, an optimum spark advance angle and air/fuel ratiomay be selected. Air flow represents a parameter which defines the loaddemand to which the engine is subjected. Fuel flow, mixture flow,throttle angle or inlet manifold pressure may also be used to defineload demand. In the embodiments of this invention given below, themanifold pressure is used.

Referring now to FIG. 1, there is shown the functional components of anadaptive control system according to one embodiment of this inventionand which uses the combined control strategy discussed above.

An engine 10 has an electronic fuel control device 11. The device 11 isan electronic fuel injection control device of known type in which aseparate injector for each cylinder is arranged to inject fuel into thebranch of the air intake manifold leading to that cylinder. Injection isinitiated at a specific point in the operating cycle of the engine andfuel control device 11 receives a fuel quantity input signal whichdetermines the duration of injector opening in each cycle.

Engine 10 has an ignition control device 12, which, in well knownmanner, causes the individual spark plugs to the engine to be fired atcrankshaft angles determined by a spark advance angle input signal tocontrol device 12.

Engine 10 has a crankshaft position transducer 10a and anothertransducer 10b which measures the air intake manifold pressure as aparameter representing load demand. Alternatively, a transducer 10bcould measure another parameter representing load demand such asthrottle angle. The latter parameter would be more appropriate thanmanifold pressure to a system controlling exhaust gas recirculation. Inthis case the fuel demand table 15 and the fuel control 11 shown in FIG.1 would be replaced by an exhaust gas recirculation demand table andexhaust gas recirculation control respectively. Fueling control would becarried out by a further independent system which may take the form of aconventional mechanical carburetor or known type of fuel injectionsystem. Crankshaft position transducer 10a is a pick-up which coactswith the toothed wheel on the crankshaft. An arrangement is incorporatedto enable a datum position of the crankshaft to be recognized. Such anarrangement may be constituted by a circuit or a computer program torecognize a missing tooth position on the toothed wheel. A suitablearrangement is disclosed in G.B. Patent No. 2,142,436, incorporatedherein by reference. The crankshaft position signals derived fromtransducer 10a are supplied to both the fuel and ignition controldevices 11 and 12 to enable the fuel injection and ignition operationsto be properly synchronized with engine operation.

The speed signal and the manifold pressure signal are supplied to threelook up tables 14, 15, 16. Table 14 provides The crankshaft 13 whichprovides a frequently updated signal representing the current speed ofthe crank shaft. output data representing spark advance angle for thecurrent value of engine speed and manifold pressure. Table 15 providesoutput data representing air/fuel ratio for the current values of enginespeed and manifold pressure.

The data stored in look up tables 14 and 15 are selected during a rigtest on a particular engine using the principles discussed above inrelation to FIG. 2. Look up table 16 contains the desired slope valuefor each engine speed and manifold pressure combination. For eachcombination, table 16 outputs the desired value of slope of engine speedwith respect to spark advance angle which corresponds to the selectedvalues of spark advance angle and air/fuel ratio determined during therig test on the particular engine. For most combinations of values ofspeed and manifold pressure, the desired value of the slope is zero.But, as explained above, in some operating conditions such as idling, apositive slope is required for minimum emissions.

The spark advance signal (or word) from look up table 14 is supplied toignition control device 12 via a summer 24 and a summer 17. Summer 17receives a perturbation signal from a perturbation generator 18 whichalso has an input from a clock 9. The air/fuel ratio signal is suppliedvia a summer 22 to fuel control device 11.

The perturbation signal is alternately positive and negative, and hencethe spark advance signal supplied to ignition control device 12 isvaried periodically to advance and retard the spark advance angle by asmall amount.

The perturbation signal is also supplied together with a signal fromtransducer 10a and clock 9 to a slope detector 19. Detector 19 operatesto monitor the effect of the perturbation in spark advance angle onengine speed. Thus, it produces a signal corresponding to the actuallydetected value of the slope of engine speed with respect to sparkadvance angle. This signal is supplied to an error detector 20 whichcompares the actual value of the slope with a desired value derived fromlook up table 16. The resulting error signal varies in both magnitudeand sign in accordance with the relationship between the desired andactual values of the slope.

The error signal is supplied to the controller 21 which has anintegrator transfer function. Controller 21 has two outputs which areconnected respectively to negative inputs of summers 22 and 24.Controller 21 consists of two sections which may linked as shown andthereby apportion the slope error between summers 22 and 24. The errorcan be apportioned in either of the two methods discussed above andillustrated in FIG. 3c. The resulting outputs of summers 22 and 24represent respectively a corrected air/fuel ration demand signal andcorrected spark advance demand signal.

It will be appreciated that other transfer functions for controller 21could be used. For example, proportional, integral or derivativetransfer functions or any combinations of these may be used so as toincrease the speed or stability of the control loop. The controller neednot have the two sections linked.

When the control strategy is based on the second method discussed above,that is with the corrections being apportioned to the spark advanceangle and air/fuel ratio in a predetermined ratio, this ratio itself maybe made a function of engine speed and load demand. This ratio could beset in a further look up table.

The functional components shown in FIG. 1 may be implemented with amicrocomputer system as shown in FIG. 5. Look up tables 14, 15, and 16are readily implemented using a RAM while perturbation generator 18 istimes by a software counter. Slope detector 19 calculates the slope byreference to successive measurements of engine speed stored in RASM.Controller 21 is implemented by an air/fuel ratio correction table and aspark advance correction table and also by a table for apportioning theerror between the two correction tables. These three tables are storedin RAM and locations in the two correction tables corresponding to theprevailing speed and load conditions are repeatedly updated usingdigital proportional, integral and derivative algorithms in accordancewith the error between the demanded slope and the actual slope inaccordance with the error apportionment table. The output fromperturbation generator 18 is added to data words from the fixed sparkadvance schedule and the spark advance correction table to obtain acommand data work for the spark advance angle and data words from thefixed air/fuel ratio table and the air/fuel ratio correction table areadded to obtain a command data word for the air/fuel ratio.

As shown in FIG. 5, the microcomputer system comprises a microcomputer30 which forms part of an Intel type 8097 microcomputer and which isconnected conventionally to a program memory 31 (ROM type 27C 64) whichcontains the program required for the microcomputer and look up tables14, 15 and 16. Temporary variables are stored in RAM 32 (Hitachi type6116).

Transducer 10a is as described in G.B. Patent No. 2,142,436,incorporated by reference herein, and employs a toothed wheel havingteeth at 10° intervals with a tooth missing at each of two referencelocations 180° apart. The winding of transducer 10a is interfaced withthe interrupt input I of microcomputer 30 via an interface circuit 33which operates mainly to filter out noise and provide clean squaredpulses to the microcomputer input as each tooth passes the pick upwinding. As explained in said G.B. Patent No. 2,142,436, these pulsesare used to provide crankshaft position pulses at 10° intervals andreference pulses at two specific positions in each crankshaftrevolution. Microcomputer 30 uses these pulses to calculate the enginespeed and thereby performs the function of speed calculator 13.Transducer 10b is interfaced by an analog to digital converter 34 tomicrocomputer 30. Converter 34 also forms part of said Intel integratedcircuit type 8097.

A high speed output of computer 30 is connected to an ignition driver35. Driver 35 includes an amplifier and provides the current to drivethe ignition coil on and off. Another high speed output is connected toanother driver 36 which supplies control signals for the individual fuelinjectors. Since the teeth on the toothed wheel are positioned at 10°intervals, finer resolution is obtained by interpolation. For eachinterval, the interpolation is achieved by using the time taken for thepassage of the previous 10° interval.

Referring to FIG. 6, there is shown a general arrangement of the moduleswhich form the program and also the flow of data between these modulesand the look up tables. The program comprises of modules MISDET 40,IGNLU 41, SAFIRE 42, and DWELL 43. The module IGNLU calls sub-modulesLOOK UP 1 and LOOK UP 2, and the module SAFIRE calls sub-modulesMAPSTORE 1, MAPSTORE 2, CORRECTION DIVISION, LOOK UP 1 CORRECTON andLOOK UP 2 CORRECTION. FIG. 6 also shows fixed sparked advance table 14,fixed air/fuel ratio table 15, together with spark advance correctiontable 44, air/fuel ratio correction table 45, and error apportionmenttable 46.

Correction tables 44 and 45 are updated under the control respectivelyof sub-modules MAPSTORE 2 and MAPSTORE 1 using a digital integralalgorithm in accordance with the error between the demanded and actualslope and the sub-module CORRECTION DIVISION and the error apportionmenttable 46. The values stored in correction tables 44 and 45 are usedrespectively to control the spark advance angle and the air/fuel ratiounder the respective control of the sub-modules LOOK UP 2 CORRECTION andLOOK UP 1 CORRECTION. Thus, these five sub-modules called by SAFIREtogether with the two correction tables 44 and 45 and errorapportionment table 46 perform the function of controller 21 shown inFIG. 1.

The module MISDET receives an interrupt signal TOOTH INTERRUPT and thismodule is executed each time a tooth is detected. A variable TOOTH issupplied to the module DWELL and represents the position of thecrankshaft to within one tooth of the toothed wheel. This module MISDETcompares the period between each tooth and thereby detects the missingteeth. When a missing tooth is detected, this module reestablishes arelationship between the variable TOOTH and the absolute position of thecrankshaft. The module MISDET also calculates the fire period andsupplies this as a variable FIRE PERIOD to the module IGNLU and SAFIRE.In the present example, ignition occurs each time the crankshaft rotatesthrough approximately 180°. The fire period is defined as the time whichis taken for the crankshaft to rotate through exactly 180°.

The module IGNLU receives a variable MAN PRESS representing manifoldpressure and this variable is derived from the output signal oftransducer 10b.

In each of tables 14, 15, 44, 45 and 46, the values are stored for eachcombination of engine speed and manifold pressure. In order to addressthese tables, the module IGNLU generates address variables SPEED andLOAD corresponding respectively to engine speed and manifold pressure.

The module IGNLU also calculates engine speed from the variable FIREPERIOD and supplies this as a variable ENG SPEED to each of the modulesSAFIRE and DWELL.

The module IGNLU calls sub-module LOOK UP 2 which calculates the basicspark advance angle as a variable SPK ANG BASE by a standardinterpolation process. This variable is then supplied to module SAFIRE.The module IGNLU also calls the submodule LOOK UP 1 which calculates thebasic value for the air/fuel ratio by a similar standard interpolationprocess and supplies this as a variable AFR BASE to the module SAFIRE.

The module SAFIRE generates a perturbation value which variesalternately between +3° to -3° of spark advance angle at a frequency of10 Hz. The module SAFIRE calls the sub-routine LOOK UP 2 CORRECTION toobtain a correction value for the spark advance. The perturbation value,this correction value and the basic spark advance value SPK ANG BASE aresummed to produce a commanded spark advance value SPK ANG which issupplied to the module DWELL.

The module SAFIRE also calls the sub-routine LOOK UP 1 CORRECTION toobtain a correction value for the air/fuel ratio. This correction valueis summed with a basic air/fuel ratio value AFR BASE to produce acommanded air/fuel ratio value AFR and this is supplied to module DWELL.

The module SAFIRE also calculates the slope of engine output withrespect to spark advance. The maximum effect of perturbing the sparkadvance angle on engine speed is found to occur almost half aperturbation cycle after each change in the sign of the perturbationwith a perturbation frequency of 10 Hz. Thus, in a perturbation cycle,the spark advance angle is increased by 3° from the base value. The fireperiod associated with the increased value is recorded just before thespark advance angle is reduced by 3° from the base value 50 ms later.The fire period associated with a reduced spark advance angle isrecorded just before the spark advance angle is increased again by 3°from the base value 100 ms after the start of the cycle. If the engineis operating under conditions such that increasing the spark advanceangle causes acceleration and reducing the spark advance angle causesdeceleration, the second value for the fire period will be longer thanthe first value for the first period. The first value for the fireperiod is subtracted from the second value and the resulting differencerepresents the slope.

The module SAFIRE also causes the sub-modules MAPSTORE 1 and MAPSTORE 2to update correction tables 45 and 44 using the control strategycontained in the sub-module CORRECTION DIVISION and error apportionmenttable 46. Each time one of these tables is updated, this is performed inaccordance with the following formulas:

Spark advance:

    new correction=old correction+k.sub.1 (SLOPE ERROR)

air fuel ratio:

    new correction=old correction+k.sub.2 (SLOPE ERROR)

In these formulas, the values of k₁ and k₂ may either be fixed, or varywith speed and load as defined in error apportionment table 48. In thefirst control strategy, the sub-module CORRECTION DIVISION determineswhether spark advance or air/fuel ratio should be corrected, and soenables either of sub-modules MAPSTORE 1 or MAPSTORE 2. In the secondcontrol strategy, both of these sub-modules will be enabled and valuesof k₁ and k₂ will be selected from the error apportionment table bysub-module CORRECTION DIVISION. In the example shown in FIG. 6, SLOPEERROR in the above formulas is the actual slope value. This is where thespark advance angle and air/fuel ratio are corrected so as to obtainzero slope. If it is desired to have a non-zero value of the slope atcertain engine speeds and load demands, a further table may be providedwhich contains these values. The slope demand (desired slope) values arethen compared with the actual slope values to provide the variable SLOPEERROR. As can be readily appreciated, correction tables 44 and 45 areupdated at points corresponding to the prevailing engine speed and loaddemand.

The module DWELL uses the variables TOOTH and ENG SPEED to causemicrocomputer 30 to provide appropriate signals to ignition driver 35and injector driver 36 to achieve ignition and fuel injection atappropriate crankshaft positions with the air/fuel ratio and the sparkadvance angle set to the commanded values.

FIGS. 7 and 8 show the sequence of operations of the modules set out inFIG. 6. The program comprises a main program MAIN PROGRAM shown in FIG.7 and an interrupt routine TOOTH INTERRUPT shown in FIG. 8.

The interrupt routine shown in FIG. 8 is performed each time aninterrupt signal is produced following the detection of a tooth. In thisroutine, the module MISDET is called in a step S1.

In the main program as shown in FIG. 7, the variable TOOTH is comparedwith a constant START TOOTH in a step S2. The constant START TOOTH ischosen to correspond to the correct angular position of the crankshaftto allow modules IGNLU, SAFIRE, and DWELL to be executed before theoccurrence of the next spark. When equality is found in step S2, thesethree modules are performed successively in steps S3, S4 and S5 beforereturning to step S2. Thus, the modules IGNLU, SAFIRE and DWELL areexecuted synchronously with the firing of the engine and these modulesare always executed between actual sparks.

The combined control of spark advance angle and air/fuel ratio can alsobe applied to individual cylinders of a multi-cylinder engine.

In a multi-cylinder engine, the air/fuel ratio may vary from cylinder tocylinder due to distribution problems or differences in thecharacteristics of the fuel injectors of the individual cylinders. Withpresent manufacturing techniques, Applicants have found that theair/fuel ratio varies by up to 0.6 of a unit between individualcylinders.

Also, in a multi-cylinder engine, particular cylinders may have fasterburning characteristics than others due, for example, to thermal effectsfrom neighboring cylinders or compression ratio or valve timingdifferences. At the same air/fuel ratio, optimum spark advance anglesmay vary by up to 6° between cylinders. If the spark advance angle isset to a target value and the air/fuel ratio is controlled so as toachieve a target slope value, the differences between the fast and slowburn cylinders can lead to a difference of two units in the air/fuelratio. Although controlling the air/fuel ratio in this manner may helpto reduce emission of nitrogen oxides, it will lead to an imbalance intorque between the individual cylinders.

Therefore, applicants consider that the best strategy for controllingspark advance and air/fuel ratio for individual cylinders is to correctthe spark advance angle within a set window and, when the correction tothe spark advance angle reaches one of the limits of this window, tocontrol the air/fuel ratio to achieve a target slope value. A windowwhich extends by 3° of spark advance angle on each side of a mid-pointwould be appropriate.

As noted above, the variation in air/fuel ratio between individualcylinders is small compared with the effect of the variation in optimumspark advance angle. With further improvements in fueling systems inwhich each cylinder has an individual electrically controlled injector,the differences may become even smaller. It may therefore becomeappropriate to adopt a control strategy in which the spark advance angleis controlled separately for the individual cylinders but the air/fuelratio is controlled simultaneously for all cylinders. With such astrategy, the air/fuel ratio control would commence when either thecorrection to the spark advance angle for one cylinder reaches the limitof the window or when the average of the corrections to the sparkadvance angle over all the cylinders reaches the specific value.

In an engine where groups of cylinders have a common fuel controldevice, such as a common carburetor or a common fuel injection controldevice, the control strategy could be implemented by correcting thespark advance angle for each individual cylinder and controlling theair/fuel ratio for each group of cylinders.

An embodiment of the present invention in which control of spark advanceangle and air/fuel ratio is applied to individual cylinders will now bedescribed with reference to FIG. 9.

FIG. 9 shows a system which is similar in principle to that shown inFIG. 1 but in which the spark advance angle is optimized for eachindividual cylinder of a four cylinder engine and in which the air/fuelratio is corrected for each individual cylinder in accordance with aparticular control strategy.

The control strategy may take the form of the first method discussedabove in which the spark advance angle is optimized within a windowwhich extends, say, by 3° from each side of a mid-point, and then theair/fuel ratio is corrected. Alternatively, the control strategy maytake the form of the second method discussed above in which the sparkadvance angle and the air/fuel ratio are corrected together.

In FIG. 9, engine 10, and transducers 10a and 10b are as described forFIG. 1. Ignition control device 12 of FIG. 1 is replaced by fourindividual control devices 12a, 12b, 12c and 12d each of which controlsthe respective individual cylinder. Fuel control device 11 of FIG. 1 isreplaced by four separate fuel control devices 11a, 11b, 11c and 11d,each of which controls the air/fuel ratio for an individual cylinder.Look up tables 14, 15 and 16 in FIG. 9 are exactly the same as describedfor FIG. 1.

The system of FIG. 9 includes a counter 50 which determines which of thefour cylinders is to be optimized. Each cylinder is optimized for afixed duration which corresponds to a preset number of engine fires.Counter 50 selects a different cylinder after this duration expires.

The output of counter 50 is supplied to a pair of selectors 51 and 52.Selector 52 determines which of four summers 17a, 17b, 17c and 17dreceives the perturbation signal at any given time. Only the selectedcylinder is perturbed.

Selector 51 determines which of four integral controllers 21a to 21d isupdated. Each of these four controllers takes the same general form ascontroller 21 and thus comprises two linked sections which togetherprovide two outputs. One of these outputs represents a correction to theair/fuel ratio and the other output represents the correction to thespark advance angle. As shown in FIG. 9, one set of these outputs isconnected to negative inputs of a set of four summers 22a to 22dconnected between fuel demand table 15 and fuel control devices 11a to11d. The other set of outputs are connected via a set of terminals 53ato 53d to negative inputs of summers 17a to 17d. For reasons of clarity,the connections between this further set of outputs and terminals 53aand 53d are not shown in FIG. 9. In each of controllers 21a to 21d, thecorrections between the two outputs are apportioned using one of thecontrol strategies mentioned above. As in the example of FIG. 1, thecontrollers 21a to 21d need not be linked and each could use a transferfunction other than an integral one.

After selecting a cylinder, the operation of the system of FIG. 9 issimilar to that of FIG. 1. In summers 17a to 17d, the corrections to thespark advance angle derived from the outputs of controllers 21a to 21dare subtracted from the spark advance angle derived from table 14. Theperturbation signal from perturbation generator 18 is directed viaselected 52 to the summer corresponding to the selected cylinder. Theresulting output signals from summers 17a to 17d are applied to ignitioncontrol devices 12a to 12d.

The perturbation signal together with a signal from transducer 10a andclock 9 is supplied to the slope detector 19. This operates to monitorthe effect of the perturbation in spark advance angle on engine speed.Detector 19 produces an output signal proportional to the slope ofengine speed with respect to spark advance angle for the selectedcylinder. This signal is supplied to error detector 20 which comparesthe actual value of the slope with the desired value of the slopederived from table 16. The resulting error signal is then directed viaselector 51 to the particular controller 21a to 21d which corresponds tothe selected cylinder.

In a modification, indicted in FIG. 9 by dashed lines, the outputs ofsummers 22a to 22d are connected to an averaging circuit 53, and theoutput of averaging circuit 53 is applied to a common fuel controldevice 54 for all the cylinders. By way of a further modification,averaging circuit 53 may be replaced by a circuit in which either therichest or the leanest fuel demand signal from summers 22a to 22d isselected for application to fuel control device 54.

The magnitude of the signal produced by slope detector 19 for anindividual cylinder will be smaller than the magnitude of thecorresponding signal for the system described with reference to FIG. 1.However, the noise component in this signal is comparable with the noisecomponent for the system described with reference to FIG. 1. Controllers21a to 21d of FIG. 9 have nominally the same gain as controller 21 ofFIG. 1. This results in a longer time for correcting the air/fuel ratioof the spark advance angle than that required by the system of FIG. 1.

In general, for a small change in spark advance angle, the slope ofengine speed with respect to spark advance angle of an individualcylinder will differ from that for the entire engine. In the averagesense, the slope of an individual cylinder will approximately onequarter of the slope of the entire engine. Consequently, the contents oftable 16 of the system shown in FIG. 9 should be about one quarter ofthe magnitude of the contents of table 16 of the system of FIG. 1.

Several embodiments of the present invention will now be described inwhich the slope error is recorded and then used by a diagnostic unitduring service of the vehicle to detect faults in the fuel controller.

Referring now to FIG. 10, the parts of the system which are identical tothose FIG. 1 are denoted by the same reference numerals. However, thesystem does not include controller 21, or summers 22 and 24. Thus, fuelcontrol device 11 and ignition control device 12 use the outputs oftables 15 and 14 directly without correction.

The system shown in FIG. 10 includes a table 60 which stores the slopeerrors. The table 60 receives the output of manifold pressure transducer10b and speed calculator 13 as address inputs and the slope errors arestored as a running time average as a function of engine speed and loaddemand.

As discussed fully above, in production engines the slope achieved infast and slow burn engines will differ from a normal burn engine whichmay have been used in pre-production rig testing to derive the values tobe stored in tables 14 to 16. Thus, some stored slope errors are to beexpected for this reason. However, any errors which exceed thoseexpected for slow burn and fast burn engines must result from a fault inthe control device 11. When the vehicle is being serviced, table 60 isconnected to a service bay diagnostic unit 61 which checks for thepresence of any such excessive errors. If such errors are found, thenthe fault in fuel control device 11 may be rectified. Table 60 may beconnected to an in-vehicle diagnostic unit 62 which provides a warningsignal to the driver in the event of detecting severe slope errors.

As discussed with the reference to FIG. 1, the control device 11 is anelectronic fuel control device. Such control devices suffer from errorsin performance resulting from production differences and aging ofcomponents. In particular, solenoid type fuel injectors are prone tochanges in fuel delivery characteristics due to gum or other depositsforming in the discharge orifices. With the system shown in FIG. 10,these errors can be detected and rectified.

Vehicle diagnostic unit 62 can also be arranged to record changes inaverage slope error with vehicle age so as to detect drift of fuelcontrol device 11. As a further enhancement of this system, an outputmay be provided from vehicle diagnostic unit 62 to a summer on theoutput of fuel demand table 15 to correct the drift in fuel controldevice 11 and remove the average slope errors.

The system of FIG. 10 can also be used with other types of fuel controldevices. For example, the system could be used with a conventionalcarburetor of purely mechanical construction.

Referring now to FIG. 11, there is shown another embodiment in which theslope errors are recorded. In this embodiment, part of the exhaust gasis recirculated to the cylinders. Engine 10 is provided with a sensor 63for detecting the presence of oxygen in the exhaust gas. The output ofsensor 63 is provided to the input of a controller 64, which may have anintegral transfer function, and the output of controller 64 is suppliedas an input signal to fuel control device 11. Sensor 63 and controller64 are arranged so that fuel and air will be supplied to the engine instoichiometric proportions. Transducer 10b of FIG. 1 is replaced by anengine load sensor 110b which detects the throttle angle position.

The system of FIG. 11 also includes a look up table 65 which containsvalues of the recirculation ratio for the exhaust gas as a function ofengine speed and load demand. Look up table 65 receives inputs fromengine load sensor 110b and speed calculator 13 and provides a controlsignal to a control device 66 which controls recirculation of theexhaust gas.

As before, the slope errors are stored in look up table 60 and table 60can be interrogated by diagnostic units 61 and 62. In this case, theinterrogation is performed to detect faults in exhaust gas recirculationcontrol device 66. Such control devices are prone to blocking fromdeposits and corrosion from the exhaust gas environment.

By way of simplification, in the system of FIG. 11, sensor 63,controller 64 and fuel control device 11 may be replaced by aconventional mechanical carburetor.

The system shown in FIG. 11 can be modified to control the exhaust gasrecirculation level directly. With this modification, the slope errordata is passed directly to a controller, which is similar to controller21 of FIG. 1. This controller then supplies outputs to summers on theoutputs of exhaust gas recirculation demand table 65 and spark advancedemand table 14. This controller corrects both the exhaust gasrecirculation and spark advance in accordance with either the first orthe second control strategy described above. With the first controlstrategy, the spark advance will be corrected within a preset window andthen the exhaust gas recirculation will be corrected. With the secondcontrol strategy, the spark advance and exhaust gas recirculation arecorrected together. Air/fuel ratio is still controlled either tostoichiometric proportion by oxygen sensor 64 and fuel control device 11as shown in FIG. 11 or via a conventional mechanical carburetor, or openloop fuel injection system.

FIG. 12 shows another embodiment in which the slope errors are stored.In this embodiment, the lean burn approach is used and a feed-backsignal is provided from a sensor which detects the oxygen level in theexhaust gas.

Referring now to FIG. 12, parts which are the same as those shown inFIG. 10 are denoted by the same reference numerals and will not befurther described. In FIG. 12, the engine is provided with a sensor 67for detecting the level of oxygen in the exhaust gas. Sensor 67 candetect the oxygen level over a wide range. The output of sensor 67 isconnected to the negative input of a summer 68.

The system of FIG. 12 also includes a look up table 69 which containsdemand values for the level of oxygen in the exhaust gas. Table 69receives address inputs from the manifold pressure transducer 10b andspeed calculator 13 and provides an output to a further input of summer68. The output of summer 68 is connected to the input of a controller69, which may have an integral transfer function. The output ofcontroller 69 is connected to the negative input of a summer 70 which isconnected between fuel demand look up table 15 and fuel control device11.

In FIG. 12, the output of error detector 20 is also connected to theinput of a controller 71, which may also have an integral transferfunction. The output of controller 71 is connected to the negative inputof a summer 72 positioned between the output of look up table 14 andsummer 17. Controller 71 is arranged to correct the output from look uptable 14 by up to 3° of spark advance angle.

Presently known exhaust gas oxygen sensors can be used to controlair/fuel ratio over a wide range, for example 10:1 to 30:1, with anaccuracy of 0.5 of a unit. However, such sensors have not yet provenreliable in extended vehicle test work. With the system shown in FIG.12, slope error look up table 60 could be interrogated by service baydiagnostic unit 61 to detect faults in sensor 67. Also, in-vehiclediagnostic unit 62 could be arranged to output a warning signal in theevent of detecting severe slope errors and could also supply a signal tofuel control device 11 so that this device operates in a fail-safe mode.

The system shown in FIG. 12 can be modified so as to correct the sparkadvance angle and the air/fuel ratio for each individual cylinder and soas to record the slope errors for each individual cylinder. Such asystem is shown in FIG. 13. In FIG. 13, parts which are the same asthose of FIG. 12 are denoted by the same reference numerals and will notbe described further.

Referring now to FIG. 13, fuel control device 11 of FIG. 12 is replacedby four individual fuel control devices 12a to 12d, each of whichcontrols the fuel supplied to an individual cylinder. Fuel controldevices 12a to 12d may comprise multipoint electronic fuel injectors.Ignition control device 12 of FIG. 12 is replaced by four individualignition control devices 11a to 11d for the individual cylinders.

The system of FIG. 13 includes a counter 70 responsive to positiontransducer 10a. Counter 70 is responsible for selecting each cylinder inturn and does so by counting the engine fires. Counter 70 providescontrol signals to four selectors 71 to 74. In the system of FIG. 13,the output of error detector 20 is connected through selector 72 to eachof four controllers 71a to 71d which replace controller 71. The outputsof these four controllers are supplied to the negative inputs of foursummers 72a to 72d which replace summer 72. The outputs of these foursummers are supplied to the inputs of four summers 17a to 17d whichreplace summer 17 and whose output signals are supplied to theindividual ignition control devices 11a to 11d.

The signal from perturbation generator 18 is supplied through selector73 to further inputs of each of summers 17a to 17d.

The exhaust gas oxygen sensor 67 is located at the common junction ofthe exhaust pipes from the individual cylinders so that it can detectdifference in the air/fuel ratio between the individual cylinders. Theoutput of sensor 67 is connected through selector 71 to inputs of foursummers 68a to 68d which replace summer 68. The other inputs of thesesummers receive the output from exhaust gas oxygen demand map 69.

The outputs of summers 68a to 68d are connected to the inputs of fourcontrollers 69a to 69d which replace controller 69. The outputs of thesefour controllers are connected to the inputs of four summers 70a to 70dwhich replace summer 70. The other inputs of these four summers 70a to70d receive the output from fuel demand table 15 and the outputs ofthese four summers are connected to the inputs of the four individualfuel control devices 12a to 12d.

Thus, in FIG. 13, the output from error detector 20 is used to correctthe spark advance angle for each individual cylinder. Similarly, theoutput signal from sensor 67 is used to correct the fuel demand cylinderfor each individual cylinder.

The output of error detector 20 is also connected through selector 74 tofour individual look up tables 76 which record the average slope errorsfor the individual cylinders. The output of look up table 76 may besupplied to a service bay diagnostic unit and also to an in-vehiclediagnostic unit. These diagnostic units can be used to detect faults insensor 67 as well as various other faults on an individual cylinderbasis.

An embodiment will now be described in which engine roughness isdetected and used to provide an override signal for correcting the fueldemand signal to prevent engine roughness reaching an excessive level.This system is shown in FIG. 14. Parts which are similar to the systemshown in FIG. 1 are denoted by the same reference numerals and will notbe described further.

Referring now to FIG. 14, the output of position transducer 10a issupplied to a roughness calculator 80. The system also includes a lookup table 81 which contains demand values for the engine roughness as afunction of engine speed and load demand. Look up table 81 receivesinputs from the manifold pressure transducer 10b and speed calculator 13and supplies an output signal to one input of a summer 82. The otherinput of summer 82 receives the output of roughness calculator 80 andthe output of summer 82 is supplied to the input of a controller 83.Controller 83 supplies one output signal to that section of controller21 which supplies an output to summer 22 and provides a further signalto an input of a summer 84. Summer 84 has its other input connected tothe output of summer 22 and provides its output as a control signal tofuel control device 11.

Controllers 21 and 83 are arranged so that, in the event of engineroughness approaching an excessive level, the correction to the fueldemand signal caused by controller 83 overrides correction of slopeerrors.

As stated previously, position transducer 10a detects each 180° ofcrankshaft angle and the roughness calculator 80 uses to detectroughness. The technique used may be that proposed in U.S. Pat. No.4,178,891, incorporated herein by reference or in SAE paper No. 840443,also incorporated herein by reference. Roughness calculator 80 may beimplemented as a further module of the computer program shown in FIG. 6.

A roughness calculator may be incorporated into any of the otherembodiments previously described including those which include exhaustgas recirculation.

In the embodiments of FIGS. 9 and 13, the slope error is used forcontrol of individual cylinders to achieve slope targets. As will now bedescribed, further use may be made of the slope error data forindividual cylinders at idle speeds.

During engine idle, it is important to avoid excessive roughness or idleinstability. Low idle speeds produce low amounts of emissions ofpollutants and improve fuel consumption but such speeds often increaseroughness. Often one cylinder performs worse than others and causes asignificant increase in the overall roughness.

Poor combustion at idle speeds is associated with high levels of dilutonof the fuel mixture with residual exhaust. This is due to poorscavenging at low inlet manifold pressures and also to reverse flow ofexhaust gases during the valve overlap period. Relatively rich fuelingis required to maintain stable combustion and large increases in engineroughness can occur for small fueling errors in the lean direction.

Cylinder to cylinder variation in the dilution of the fuel mixture byresidual exhaust gas can also be caused by variations in compressionratio and valve timing.

This means that for a given level of combustion quality, the air/fuelratio should be varied between the cylinders so as to compensate thedilution level of the fuel mixture by residual exhaust gases.

As mentioned with reference to FIG. 14, a roughness calculator can beadded to the system of FIG. 9 or 13 by adding a further software module.Using such a roughness calculator, and using the slope error data forthe individual cylinders for low load conditions, Applicants have foundthat idle conditions should be controlled as follows:

(1) The spark advance angle is set to a value known to give the bestcompromise between fuel economy and emission of hydrocarbons;

(2) The mean fueling level is kept fixed but the fuel apportionedbetween the individual cylinders according to the individual slopeerrors, the most fuel being delivered to the cylinder with the mostpositive value for the slope errors; and

(3) The idle speed is then decreased until the roughness limit isreached.

The amount by which the fuel is apportioned according to the slope erroris fixed empirically. This system gives the lowest possible idle speedfor a given level of roughness for a particular engine.

The slope errors for the individual cylinders can also be used to avoidengine knock in the following way. Compression ratio differences whichmay cause knock on one cylinder can most effectively be measured throughthe differences in the slope errors between the individual cylinders atlow load low speed conditions. The occurrence of knock at higher loadsand speeds is not necessarily avoided by using the differences betweenthe slope errors which occur at such operating conditions. Therefore, inorder to avoid knock at certain engine speeds and high load demandcombinations which are known to be most prone to engine knock, the slopedifferences measured at low load are used. Specifically, the averagespark advance for the cylinders is maintained at the value which isappropriate for the particular engine speed/load demand but the slopedifferences obtained at low load low engine speed are used to vary thespark advanced angle between the individual cylinders. The most advancedspark angle is given to the cylinder with the most positive slopeerrors. The amount by which the spark advance is apportioned accordingto the slope errors is fixed empirically.

The invention has been described for use with a conventional fuelmixture control device which alters the rate of fuel flow while the rateof air flow or the rate of mixture flow is controlled by the driver ofthe vehicle in which the engine is installed. However, the invention isalso applicable to unconventional systems in which the fuel mixturecontrol device alters the rate of air flow and the fuel flow is directlycontrolled by the driver. In this case, graphs equivalent to those shownin FIG. 2 may be derived but with speed and fuel flow rate held constantrather than speed and air flow rate.

With such an unconventional system, in the example of FIG. 1 or FIG. 9,spark advance demand values are chosen for storage in spark advance lookup table 14, and an air demand look up table would replace fuel demandlook up table 15. Fuel controller 11 is replaced by an air flow controldevice such as a servo-driven throttle butterfly.

In the embodiments of the invention described in FIGS. 1, 9 and 14 theengine input which is perturbed to measure the slope of engine outputwith respect to said input is also one of the two inputs which arecorrected in accordance with the control strategy to obtain the desiredvalue of said slope. A further embodiment of the invention is a systemwhere the perturbed input is not one of the two controlled inputs.

Such a system can be described with reference to a modification of FIG.1 as shown in FIG. 15. In this modification an exhaust gas recirculationdemand table and exhaust gas recirculation control device (shownrespectively as 65 and 66 in FIG. 11) are added and summer 24 with thesecond output from controller 21 is moved from the output of the sparkadvance demand table to the output of the exhaust gas recirculationdemand table. The slope error from summer 20 is now apportioned withincontroller 21 according to either of the strategies previously describedallowing for any compensation required with the first control inputbeing exhaust gas recirculation instead of spark advance angle.

No corrections are applied to the spark advance angle. Ignition controldevice 12 uses the output from summer 17 which is now the base sparkadvance angle added to the perturbation.

The various embodiments discussed above relate to a spark ignitionengine. However, the present invention could equally be applied to acompression ignition engine. In a compression ignition engine, insteadof controlling the spark advance value, the ignition timing iscontrolled by controlling the timing of the fuel injection.

In all the embodiments discussed above, the slope of engine speed withrespect to spark advance has been determined by perturbing the sparkadvance angle. Alternatively, the slope of engine speed with respect toa parameter relating to the fuel mixture, such as the air/fuel ratio,may be determined by perturbing such parameter. Two control inputs ofthe engine, such as the spark advance angle and the air/fuel ratio, maythen be controlled using one or the other control strategies discussedabove.

The above description and the accompanying drawings are merelyillustrative of the application of the principles of the presentinvention and are not limiting. Numerous other arrangements which embodythe principles of the invention and which fall within its spirit andscope may be readily devised by those skilled in the art. Accordingly,the invention is not limited by the foregoing description, but is onlylimited by the scope of the appended claims.

We claim:
 1. An adaptive control system for an engine having at leasttwo control inputs which affect an engine output, said systemcomprising:means for establishing a base value for a particular saidcontrol input in accordance with engine operating conditions;perturbation means for periodically perturbing said particular controlinput about said base value; slope determination means, responsive toperturbations of said particular control input, for determining anactual slope of engine output with respect to said particular controlinput; and control means for controlling a first said control input anda second said control input so as to cause said actual slope tocorrespond to a desired slope value.
 2. The system as in claim 1,further comprising means for determining said desired slope value as afunction of engine operating conditions.
 3. The system as in claim 2,further comprising comparison means for determining any differencebetween said actual slope and said desired slope value and storagemeans, responsive to said comparison means, for storing informationrelating to said difference.
 4. The system as in claim 1, wherein saidcontrol means first modifies said first control input within a givenrange to cause said actual slope to move closer to said desired slopevalue and then modifies said second control input until said actualslope equals said desired slope value.
 5. The system as in claim 4,wherein said given range is a predetermined percentage above and below astarting base value of said first control input.
 6. The system as inclaim 1, wherein said control means includes means for simultaneouslymodifying said first control input and said second control input inaccordance with a predetermined apportionment formula.
 7. The system asin claim 6, wherein said predetermined formula is such that said firstcontrol input is modified by a predetermined proportion of themodification made to said second control input.
 8. The system as inclaim 1, wherein said particular control input is the same input as oneof said first control input and said second control input.
 9. The systemas in claim 1, wherein said particular control input is different fromboth said first control input and said second control input.
 10. Anadaptive control system for an engine having at least two control inputswhich affect an engine output, said system comprising:first means forestablishing a first base value for a first said control input as afunction of engine operating conditions; second means for establishing asecond base value for a second said control input as a function ofengine operating conditions; perturbation means for periodicallyperturbing a particular control input; slope detection means, responsiveto perturbations in said particular control input, for determining anactual slope or differential of said engine output with respect to saidparticular control input as it is perturbed by said perturbation means;and correction means for applying corrections to said first base valueand said second base value, to obtain corrected values for said firstcontrol input and corrected values for said second control input, saidcorrection means including means for causing said actual slope tocorrespond to a desired slope value.
 11. The system as in claim 10,further comprising means, responsive to said correction means and saidslope detection means, for modifying said first means and said secondmeans after corrections supplied by said correction means have becomestabilized to supply a modified first base value and a modified secondbase value, respectively, corresponding to prevailing engine operatingconditions such that said correction means causes said actual slope tocorrespond more quickly to said desired slope.
 12. The system as inclaim 10, wherein said engine is an internal combustion engine, saidsystem further comprises an ignition timing control means responsive tosaid first control input and a fuel mixture control means responsive tosaid second control input, and said particular control input is saidfirst control input.
 13. The system as in claim 12, wherein said fuelmixture control means controls one of air fuel ratio and exhaust gasrecirculation.
 14. The system as in claim 12, further comprising meansfor detecting engine roughness and means for overriding one of saidfirst corrected value and said second corrected value in response toengine roughness exceeding a predetermined level.
 15. The system as inclaim 10, wherein said correction means first applies corrections up toa predetermined maximum magnitude to one of said first base value andsaid second base value, and thereafter applies corrections to the otherof said first base value and said second base value.
 16. The system asin claim 10, wherein said correction means applies correctionssimultaneously to both said first base value and said second base value,said corrections being related to each other by a predetermined formula.17. The system as in claim 10, wherein said engine is a multi-cylinderinternal combustion engine, and said system further comprises (i) meansfor establishing a plurality of cylinder combinations, each combinationincluding at least one cylinder and (ii) means for selecting eachcombination in turn, and said correction means applies correctionsindividually to at least one of said first base value and said secondbase value for each cylinder combination, said perturbation meansperturbs said particular control input for each cylinder combinationwhen it is selected, said slope detection means determines the slope foreach cylinder combination when it is selected, and said control strategyis such that a desired value of said slope is obtained for each cylindercombination.
 18. An adaptive control system for an internal combustionengine having at least two control inputs which affect an engine output,said system comprising:a position transducer for generating crankshaftposition signals; a load demand transducer for generating an outputrepresenting load demand on said engine; a speed calculation device,responsive to said position transducer, for providing an outputrepresenting engine speed; a first memory means for storing datarepresenting a first said control input as a function of engine speedand load demand, and, responsive to said output from said speedcalculation device and said load demand transducer, for providing anuncorrected output for said first control input at prevailing enginespeed and load demand conditions; a second memory means for storing datarepresenting a second said control input as a function of engine speedand load demand, and, responsive to said output from said speedcalculation device and said load demand transducer, for providing anuncorrected output for said second control input at prevailing enginespeed and load demand conditions; a perturbation means for applying aperturbation signal to a particular said control input; a slopedetection means, responsive to said position transducer, for determiningan actual slope of said engine output relative to said particularcontrol input; a third memory means for storing data representing adesired slope or differential of said engine output relative to saidparticular control input as a function of engine speed and load demand,and, responsive to said output from said speed calculation device andsaid load demand transducer, for providing a desired slope for saidengine output relative to said particular control input; error detectionmeans, responsive to said output of said third memory means and saidslope detection means, for comparing said desired slope and said actualslope and providing a slope error output having a magnitude and signrepresenting a compared relationship between said desired slope and saidactual slope; controller means, responsive to said error detectionmeans, for providing a first output and a second output as a function ofsaid slope error output; and a correction means for summing said firstoutput and said uncorrected output from said first memory means toobtain a corrected output for said first control input and for summingsaid second output and said uncorrected output from said second memorymeans to obtain a corrected output for said second control input, sothat said magnitude of said slope error output is zero.
 19. The systemas in claim 18, wherein said desired slope is zero.
 20. The system as inclaim 18, wherein said desired slope has a non-zero magnitude.
 21. Thesystem as in claim 18, further comprising an ignition timing controlmeans responsive to said first control input and a fuel mixture controlmeans responsive to said second control input, and said particularcontrol input is said first control input.
 22. The system as in claim18, wherein said controller means apportions said slope error outputsuch that one of said first output and said second output has a valueless than or equal to a predetermined maximum magnitude, and saidcorrection means comprises means for summing said one of said firstoutput and said second output with a corresponding one of saiduncorrected output from said first memory means and said second memorymeans and for providing a corrected value for a corresponding one ofsaid first control input and said second control input and thereafterfor summing the other of said first output and said second output withsaid corresponding one of said uncorrected output from said first memorymeans and said second memory means, and for providing a corrected valuefor said corresponding one of said first control input and said secondcontrol input.
 23. The system as in claim 18, wherein said controllermeans includes means for apportioning said slope error output such thatsaid first output and said second output are related to each other by apredetermined formula and said correction means simultaneously sums saidfirst output and said uncorrected output from said first memory means toobtain a corrected output for said first control input and sums saidsecond output and said uncorrected output from said second memory meansto obtain a corrected output for said second control input.
 24. Thesystem as in claim 18, wherein:(a) said engine is a multi-cylinderengine; (b) said control system further comprises (i) means forestablishing a plurality of cylinder combinations, each combinationincluding at least one cylinder, and (ii) means for selecting eachcombination in turn; (c) said correction means including means forsumming individually with respect to each cylinder combination (i) saidfirst output and said uncorrected output from said first memory means toobtain a corrected output for said control input and (ii) said secondoutput and said uncorrected output from said second memory means toobtain a corrected output for said second control input; (d) saidperturbation means includes means for applying said perturbation signalto said particular control input for each cylinder combination when itis selected, and; (e) said slope detection means includes means fordetermining said actual slope of said engine output relative to saidparticular control input for each cylinder combination when selected.25. The system as in claim 24, wherein said second control input is afuel control input, and said control system further comprises anaveraging circuit and a common fuel mixture control means for eachcylinder, and said correction means includes means for providing a sumof said second output and said uncorrected output from said secondsummary means for each cylinder combination when selected, to saidaveraging circuit, said averaging circuit including means for providingan average output to said common fuel mixture control device.
 26. Thesystem as in claim 24, wherein said second control input is a fuelcontrol input, and further comprising a common fuel mixture controlmeans for each cylinder and a selection means for selecting a particularcorrected output from said second control input providing by saidcorrection means for each cylinder combination when selected by saidcylinder selection means which constitutes one of a leanest and arichest fuel demand output, and providing said particular correctedoutput to said common fuel mixture control means.
 27. A method ofcontrolling a power producing engine having at least two control inputswhich affect an engine output, said method comprising:(a) establishing abase value for a particular said control input in accordance with engineoperating conditions; (b) periodically perturbing said particularcontrol input about said base value; (c) determining an actual slope ofengine output with respect to said particular control input; and (d)controlling a first said control input and a second said control inputso as to obtain a desired value of said slope.
 28. The method as inclaim 27, wherein said desired value of said slope is determined as afunction of engine operating conditions.
 29. The method as in claim 28,further comprising determining any difference between said actual slopeand said desired slope and storing information relating to saiddifference.
 30. The method as in claim 27, wherein step (d) includesfirst modifying said first control input within a given range to causesaid actual slope to move closer to said desired value and thenmodifying said second control input until said actual slope equals saiddesired value.
 31. The method as in claim 30, wherein said given rangeis a given percentage above and below a starting base value of saidfirst control input.
 32. The method as in claim 27, wherein step (d)includes simultaneously modifying said first control input and saidsecond control input in accordance with a predetermined apportionmentformula.
 33. The method as in claim 32, wherein said predeterminedformula is such that said first control unit is modified by apredetermined proportion of the modification made to said second controlinput.
 34. The method as in claim 27, wherein said particular controlinput is the same input as one of said first control input and saidsecond control input.
 35. The method as in claim 27, wherein saidparticular control input is different from both said first control inputand said second control input.
 36. A method of controlling a powerproducing engine having at least two control inputs which affect anengine output, said method comprising:(a) establishing a first basevalue for a first said control input as a function of engine operatingconditions; (b) establishing a second base value for asecond saidcontrol input as a function of engine operating conditions; (c)periodically perturbing a particular said control input; (d) determiningan actual slope or differential of said engine output with respect toperturbations said particular control input; and (e) applyingcorrections to said first base value and said second base value toobtain corrected values for said first control input and correctedvalues for said second control input and causing said actual slope tocorrespond to a desired slope value.
 37. The method as in claim 36,wherein said engine is an internal combustion engine, said first controlinput is an ignition timing input, said second control input is a fuelmixture control input, and said particular control input is said firstcontrol input.
 38. The method as in claim 37, wherein said fuel mixturecontrol input is one of an air/fuel ratio control input and an exhaustgas recirculation input.
 39. The method as in claim 37, furthercomprising detecting engine roughness and overriding one of said firstcorrected value and said second corrected value when engine roughnessexceeds a predetermined level.
 40. The method as in claim 36, furthercomprising modifying said first base value and said second base valueafter corrections therefore have become stabilized to obtain a modifiedfirst base value and a modified second base value, respectively,corresponding to prevailing engine operating conditions such that saidactual slope is caused to correspond more quickly to said desired slope.41. The method as in claim 36, wherein step (e) includes first applyingcorrections up to a predetermined maximum magnitude to one of said firstbase value and said second base value and thereafter applyingcorrections to the other of said first base value and said second basevalue.
 42. The method as in claim 36, wherein step (e) includes applyingcorrections simultaneously to both said first base value and said secondbase value, said corrections being related to each other by apredetermined formula.
 43. The method as in claim 36, wherein saidengine is a multi-cylinder engine, and said method further comprises (i)establishing a plurality of of cylinder combinations each combinationincluding at least one cylinder, and (ii) selecting each combination inturn, and wherein step (c) includes perturbing said particular controlinput for each cylinder combination when it is selected, step (d)includes determining the slope for each cylinder combination when it isselected and step (e) includes applying corrections individually to atleast one of said first base value and said second base value for eachcylinder combination such that a desired value of said slope is obtainedfor each cylinder combination.